package cn.tedu.ximaet.order.webapi.controller;

import cn.tedu.ximart.commons.pojo.order.vo.AccomplishListVO;
import cn.tedu.ximart.commons.pojo.order.vo.AwaitSendListVO;
import cn.tedu.ximart.commons.pojo.order.vo.AwaitTakeListVO;
import cn.tedu.ximart.commons.pojo.order.vo.OrderListVO;
import cn.tedu.ximart.commons.restful.JsonResult;
import cn.tedu.ximart.order.service.IOrderService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;

@Slf4j
@RestController
@RequestMapping("/admin/order")
public class OrderController {
    @Autowired
    IOrderService orderService;

    /**
     * 查询所有订单
     * @return 返回值为所有订单信息
     */
    @GetMapping("/list")
    public JsonResult orderList(){
        log.info("接收到客户端请求,开始查询订单列表");
        List<OrderListVO> orderList = orderService.orderList();
        log.info("即将向客户端返回订单列表>>>>>>>{}",orderList);
        return JsonResult.ok("查询所有订单成功",orderList);
    }

    /**
     * 待发货列表
     * @return 返回值为待发货列表
     */
    @GetMapping("/AwaitSendView")
    public JsonResult awaitSendList(){
        log.info("接收到客户端请求,开始查询待发货列表");
        List<AwaitSendListVO> awaitSendList = orderService.awaitSendList();
        log.info("即将向客户端返回待发货列表>>>>>>>{}",awaitSendList);
        return JsonResult.ok("查询待发货列表成功",awaitSendList);
    }

    /**
     * 待签收列表
     * @return 返回值为待签收列表
     */
    @GetMapping("/AwaitTakeView")
    public JsonResult awaitTakeList() {
        log.info("接收到客户端请求,开始查询待签收列表");
        List<AwaitTakeListVO> awaitTakeList = orderService.awaitTakeList();
        log.info("即将向客户端返回待发货列表>>>>>>>{}",awaitTakeList);
        return JsonResult.ok("查询待签收列表成功",awaitTakeList);
    }

    /**
     * 已完成订单列表
     * @return 返回值为已完成订单列表
     */
    @GetMapping("/AccomplishView")
    public JsonResult AccomplishList() {
        log.info("接收到客户端请求,开始查询已完成订单列表");
        List<AccomplishListVO> accomplishList = orderService.AccomplishList();
        log.info("即将向客户端返回待发货列表>>>>>>>{}",accomplishList);
        return JsonResult.ok("查询订单列表成功",accomplishList);
    }

}
